package main

import "fmt"

type Ts struct {
	a int
}

func (t *Ts) Set(a int) {
	t.a = a
}

func (t Ts) Get() int {
	return t.a
}

func main() {
	t := Ts{12}
	p := &Ts{13}
	t.Set(2)
	fmt.Println(t.a)
	fmt.Println(p.Get())

	(Ts)(struct{ a int }{a: 10}).Get() //类型字面量显示的进行值调用
	Ts.Get(struct{ a int }{a: 12})     //类型字面量显示的进行表达式调用

	(*Ts)(&(struct{ a int }{a: 13})).Get()
	(*Ts)(&(struct{ a int }{a: 14})).Set(15)
	//(*Ts).Set(&struct{ a int }{}, 17)
}
